شیء تغییرناپذیر
در برنامهنویسی شیءگرا و تابعی، شیء تغییرناپذیر (به انگلیسی: Immutable object)، یک شیء است که وضعیتش پس از ایجاد نمیتواند تغییر کند.[۱] این نوع شیء متضاد شیء تغییرپذیر است که پس از ایجاد میتواند تغییر کند.[۲] در برخی موارد، یک شیء، حتی اگر برخی از ویژگیهای مورد استفادهٔ داخلی آن تغییر کنند، اما وضعیت شیء از دیدگاه خارجی بدون تغییر به نظر برسد، تغییرناپذیر در نظر گرفته میشود. برای مثال، یک شیء که برای ذخیرهسازی نتایج محاسبههای پرخرج از به خاطر سپاری میکند، همچنان میتواند یک شیء تغییرناپذیر در نظر گرفته شود.
بهمنظور بهبود خوانشپذیری و بهینهسازی زمان اجرا در برنامهنویسی شیءگرا، معمولاً رشتهها و سایر اشیاء سخت بهعنوان اشیاء تغییرناپذیر بیان میشوند. از دیگر مزایای این نوع از اشیاء این است که درک آنها و استدلالکردن در مورد آنها سادهتر است و نسبت به اشیاء تغییرپذیر، امنیت بیشتری را ارائه میدهند.[۱]
منابع
[ویرایش]- مشارکتکنندگان ویکیپدیا. «Immutable object». در دانشنامهٔ ویکیپدیای انگلیسی.
- ↑ ۱٫۰ ۱٫۱ Goetz et al. Java Concurrency in Practice. Addison Wesley Professional, 2006, Section 3.4. Immutability
- ↑ "6.005 — Software Construction".
پیوند به بیرون
[ویرایش]- اشیاء تغییرناپذیر در سی# با ۳ قدم ساده.
- مقالهٔ تئوری و عرف جاوا: تغییرپذیری یا تغییرناپذیری؟ نوشتهٔ برایان گوتز؛ از آیبیام دولوپرورکس – نسخهٔ بایگانیشده در بایگانی اینترنت
- اشیاء تغییرناپذیر در وبگاه JavaPractices.com
- اشیاء تغییرناپذیر در مخزن الگوی پورتلند
- Immutable.js از فیسبوک
- پروژهٔ متنباز ساختارهای تغییرناپذیر در سی# در Codeplex
- کتابخانهٔ رسمی مجموعههای تغییرناپذیر در .NET از مایکروسافت
- اشیاء تغییرناپذیر در سی# از Tutlane.com